package com.ruoyi.order.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.disease.domain.Disease;
import com.ruoyi.doctorlibrary.domain.DoctorLibrary;
import com.ruoyi.doctorlibrary.domain.vo.DoctorLibraryVO;
import com.ruoyi.evaluate.domain.Evaluate;
import com.ruoyi.user.domain.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Getter
@Setter
@ApiModel(description = "订单参数对象")
public class OrderVO implements Serializable {
    @ApiModelProperty(value = "订单ID", example = "订单ID")
    private String orderId;

    @ApiModelProperty(value = "意向城市", example = "意向城市")
    private String city;

    @ApiModelProperty(value = "医院属性（0-公立，1-私立，2-不限）", example = "医院属性（0-公立，1-私立，2-不限）")
    private String hospitalAttributes;

    @ApiModelProperty(value = "医生性别（男/女）", example = "医生性别（男/女）")
    private String doctorGender;

    @ApiModelProperty(value = "疾病ID", example = "疾病ID")
    private Long diseaseId;

    @ApiModelProperty(value = "需求补充说明", example = "需求补充说明")
    private String supplement;

    @ApiModelProperty(value = "下单时间（格式：yyyy-MM-dd HH:mm:ss）", example = "下单时间（格式：yyyy-MM-dd HH:mm:ss）")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date placeOrderTime;

    @ApiModelProperty(value = "接单时间（格式：yyyy-MM-dd HH:mm:ss）", example = "接单时间（格式：yyyy-MM-dd HH:mm:ss）")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderTakingTime;

    @ApiModelProperty(value = "完成时间（格式：yyyy-MM-dd HH:mm:ss）", example = "完成时间（格式：yyyy-MM-dd HH:mm:ss）")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date completeTime;

    @ApiModelProperty(value = "订单状态（0-已完成，1-待接单，2-进行中，3-待评价，5-已取消）", example = "订单状态（0-已完成，1-待接单，2-进行中，3-待评价，5-已取消）")
    private String orderStatus;

    @ApiModelProperty(value = "是否评价0-已评价, 1-待评价", example = "是否评价0-已评价, 1-待评价")
    private String isEvaluate;

    @ApiModelProperty(value = "是否关闭会话（0-否，1-是）", example = "是否关闭会话（0-否，1-是）")
    private Integer isSession;

    @ApiModelProperty(value = "用户ID", example = "用户ID")
    private String userId;

    @ApiModelProperty(value = "专家ID", example = "专家ID")
    private String expertId;

    @ApiModelProperty(value = "医生信息列表", example = "医生信息列表")
    private List<DoctorLibrary> doctorLibraryList;

    private List<DoctorLibraryVO> doctorLibraryVOList;

    @ApiModelProperty(value = "用户信息", example = "用户信息")
    private User user;

    @ApiModelProperty(value = "专家信息", example = "专家信息")
    private User expert;

    @ApiModelProperty(value = "订单总金额（单位：元）", example = "订单总金额（单位：元）")
    private BigDecimal totleAmount;

    @ApiModelProperty(value = "实际支付金额（单位：元）", example = "实际支付金额（单位：元）")
    private BigDecimal actualPayment;

    @ApiModelProperty(value = "抵扣金额（单位：元）", example = "抵扣金额（单位：元）")
    private BigDecimal deduction;

    @ApiModelProperty(value = "微信支付订单号", example = "微信支付订单号")
    private String wxPayId;

    @ApiModelProperty(value = "支付时间（格式：yyyy-MM-dd HH:mm:ss）", example = "支付时间（格式：yyyy-MM-dd HH:mm:ss）")
    private Date payTime;

    @ApiModelProperty(value = "订单评价信息", example = "订单评价信息")
    private Evaluate evaluate;

    @ApiModelProperty(value = "疾病信息", example = "疾病信息")
    private Disease disease;

    @ApiModelProperty(value = "是否忽略（0-否，1-是）", example = "是否忽略（0-否，1-是）")
    private String isIgnore;

    @ApiModelProperty(value = "支付状态（0-未支付，1-已支付）", example = "支付状态（0-未支付，1-已支付）")
    private String payStatus;

    @ApiModelProperty(value = "当前页码", example = "当前页码")
    private Integer pageNum;

    @ApiModelProperty(value = "每页大小", example = "每页大小")
    private Integer pageSize;

    // 退款时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date refund_time;

    // 商户退款订单号
    private String  outRefundNo;

    // 微信退款订单号
    private String weChatRefundOrderNo;

    private String illness;

    private Integer isOffline;


}
